// pages/forget/forget.js
const inputMixin = require('../../utils/mixins/input')
const loading = require('../../utils/tools/loading')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    mobile: '',
    code: '',
    password: '',
    repassword: '',
    errorMsg: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  /**
   * @desc 确认找回
   */
  confirm(){
    if(loading.isLoading) return
    let errorMsg = this.validate(this.getValidateOptions())
    if (errorMsg) {
      return this.setErrorMsg(errorMsg)
    }
    this.clearErrorMsg()

    loading.show('请稍后')

    setTimeout(function () {
      loading.hide()

      wx.navigateBack({
        delta: 1,
      })
    }, 1000)
  },

  /**
   * @desc 获取验证条件
   */
  getValidateOptions(){
    let {mobile, code, password, repassword} = this.data

    return [
      {
        value: mobile,
        strategies: [
          { strategy: 'isNotEmpty', errorMsg: '手机号码不能为空' },
          { strategy: 'isPhone', errorMsg: '手机号码格式不对' },
        ],
      },
      {
        value: code,
        strategies: [
          { strategy: 'isNotEmpty', errorMsg: '验证码不能为空' },
        ],
      },
      {
        value: password,
        strategies: [
          { strategy: 'isNotEmpty', errorMsg: '密码不能为空' },
        ],
      },
      {
        value: repassword,
        strategies: [
          { strategy: 'isNotEmpty', errorMsg: '确认密码不能为空' },
          { strategy: `equalTo:${password}`, errorMsg: '确认密码与密码不同' },
        ],
      },
    ]
  },

  ...inputMixin,
})